/**
 * 
 */
package pruebas.tiendaOl.ipsWeb;

import java.io.Serializable;
import java.util.List;

import com.intelap.incrustables.Dinero;


/**IPS (Interfaz proveedor servicio) que debe implementar quien pretenda proveer el servicio requerido por {@link RiuCarrito}.
 * @author Gustavo
 */
public interface IpsCarrito extends Serializable {

	/**Nota: Ademas de la llamada inicial, esta operacion es llamada a lo sumo un vez por cada vez que {@link ObservadorCambiosCarrito#contenidoCarritoHaCambiado()} es es llamada.  */
	List<IpsItemCarrito> getItems();
	
	void sacarArticulosDeCarrito(IpsItemCarrito itemCarrito, int cantidad);
	
	public interface IpsItemCarrito {
		String getNombre();
		Dinero getPrecio();
		int getCantidad();
	}
	
	public interface EventoCambiosCarrito {
		String getNombreArticulo();
		int getCantidadAgregada();
	}

	/**Da un identificador de instancia. Usado solo para debug */
	String getId();

}
